#include "../code/defs.h"

/* Recibe un archivo de la forma nro de condicion distancia y grafica. */
int main(int argc, char* argv[])
{           
    string nombre_entrada, nombre_fig, nombre, label;
    
    if (argc == 2)
    {
		string nombre = argv[1];
        nombre_entrada = nombre + ".out";
        nombre_fig = nombre;        
    }    
    else
    {
        if (argc == 3)
        {
            nombre_entrada = argv[1];
            nombre_fig = argv[2];            
        }
        else        
        {
            cout << "Se necesita por lo menos un parámetro, el nombre del archivo a utilizar" << endl;
            exit(1);            
        }
    }    
        
    getline(cin, label);      
    
    ifstream entrada(nombre_entrada.c_str());
    
    double nro;
    double valor;
    
    stringstream aux_n, aux_v;
    aux_n << "n = [";
    aux_v << "v = [";
    
    forn(i, 9)
    {
		/* Leer el número de condición. */
		entrada >> nro;
		
        /* Leer el valor. */
		entrada >> valor;
		
		//~ cout << nro << " " << valor << endl;
		
        /* Guardar el nro y el valor. */
        aux_n << nro << ", ";
		aux_v << valor << ", ";
	}
    
    entrada >> nro;    
	entrada >> valor;
		
    /* Guardar el nro y el valor. */
    aux_n << nro << "];";
    aux_v << valor << "];";
    
	entrada.close();
    
    /* Formato matlab (Octave). */
    ofstream inputGrafico ("input_grafico.m");
	string x, y;
	x = aux_n.str();
	y = aux_v.str();
	
	inputGrafico << "close all" << endl;
	inputGrafico << x << endl;
	inputGrafico << y << endl;
	//~ inputGrafico << "plot(n,v)" << endl;	
	inputGrafico << "semilogy(n,v)" << endl;
	//~ inputGrafico << "loglog(n,v)" << endl;
	inputGrafico << "xlabel('Nro de Condicion')" << endl;	
	inputGrafico << "ylabel('" << label << "')" << endl;
	//~ inputGrafico << "title('" << caption << "')" << endl;
	inputGrafico << "print -deps " << nombre_fig << ".eps" << endl;
	
	//~ system("matlab < input_grafico.m");
	system("octave --quiet < input_grafico.m");
	
	stringstream aux;
	aux << "mv -f " << nombre_fig << ".eps ./graficos";	
	system(aux.str().c_str());
    
    return 0;
}
